/****************************************************************
 * Homework 5 'Scheduler' class header file
 * Author: Duncan Buell
 * Date last modified: 3 January 2010
 *
 * Full documentation is in the implementation file.
**/
#ifndef SCHEDULER_H
#define SCHEDULER_H

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
#include <vector>
#include <queue>

#include "Comparison.h"
#include "Process.h"
#include "Utils.h"

using namespace std;

class Scheduler
{
public:
  Scheduler();
  virtual ~Scheduler();
  void addProcess(long pid, long startTime, long execTime);
  bool empty();
  void pop();
  Process top();
  string toStringDump();
  
private:
  priority_queue<Process, vector<Process>, Comparison> theSchedule;
  
};

#endif /*SCHEDULER_H*/

